import type { App } from 'vue'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

const store = createPinia()

// 注意：如果在非setup上下文调用store，请注意调用的执行时机不可在setupStore初始化之前，否则persist将无法生效
// 例如，在main.ts中引入setupStore，在执行该初始化函数之前，其他文件就已经调用store了，persist将无法生效
store.use(piniaPluginPersistedstate)

/**
 * 初始化状态管理库
 */
export function setupStore(app: App<Element>) {
  app.use(store)
}

export { store }
